package cn.lk1234.imt.service;

import java.sql.SQLException;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import cn.lk1234.imt.bean.UserInfo;
import cn.lk1234.imt.dao.UserDao;
import cn.lk1234.imt.dao.dbtool.MapBean;

@Component
public class UserService {

	@Autowired
	public UserDao userDao;
	
	/**
	 * 登录
	 */
	public List<MapBean> login(UserInfo user) throws SQLException {
		List<MapBean> userList = userDao.getUserByUsernameAndPassword(user);
		// 这里还应该做一些更复杂的校验，先不写了
		return userList;
	}
	
	/**
	 * 注册
	 */
	public int registerUser(UserInfo user) throws SQLException {
		// 补全注册信息
		// 用户昵称 如果为空，就用登录名作为昵称
		if(StringUtils.isBlank(user.getUserNick())){
			user.setUserNick(user.getUserName());
		}
		// 用户类型 新注册的用户均为普通用户(2)
		user.setUserType("2");
		// 是否禁用 新注册的用户不禁用(1)
		user.setIsForbid("1");
		// 创建时间
		user.setCreatTime(new Date());
		return userDao.addUser(user);
	}

	/**
	 * 根据条件查询用户部分信息
	 * 查询结果包括【编号】【登录名】【昵称】【类型】【是否禁用】【创建时间】【最后登录时间】
	 */
	public List<MapBean> getUserList(UserInfo user) throws SQLException {
		
		return userDao.getUserList(user);
	}
	
	/**
	 * 添加
	 */
	public int addUser(UserInfo user) throws SQLException {
		// 补全添加信息
		// 用户昵称 如果为空，就用登录名作为昵称
		if(StringUtils.isBlank(user.getUserNick())){
			user.setUserNick(user.getUserName());
		}
		// 是否禁用 新注册的用户不禁用(1)
		user.setIsForbid("1");
		// 创建时间
		user.setCreatTime(new Date());
		return userDao.addUser(user);
	}
	
	/**
	 * 根据id获取详细信息
	 */
	public List<UserInfo> getUserById(UserInfo user) throws SQLException {
		return userDao.getUserById(user);
	}
	
	/**
	 * 查询用户全部信息（暂不使用）
	 */
	public List<MapBean> getUserListAll() throws SQLException {
		return userDao.getUserListAll();
	}

	
	public int userAdd(UserInfo user) throws SQLException {

		// 补全信息
		user.setCreatTime(new Date());
		user.setForbidReason("");
		user.setIsForbid("0");
		user.setUserDescription("");
		user.setUserEmail("");
		user.setUserName(user.getUserName());
		user.setUserNick("");
		user.setUserPhone("");
		user.setUserPicUrl("");
		user.setUserPwd(user.getUserPwd());
		user.setUserType("0");

		return userDao.addUser(user);
	}

}
